
#ifndef TORCH_H
#define TORCH_H
//#include <QGraphicsScene>
#include <QMainWindow>
#include<QTimer>
#include<QObject>
#include<QString>
#include<QGraphicsItem>
#include"map.h"

QT_BEGIN_NAMESPACE
namespace Ui { class Torch; }
QT_END_NAMESPACE

struct Block{
    QRect block;
    int size;
};

class Torch : public QMainWindow
{
    Q_OBJECT

public:
    Torch(QWidget *parent = nullptr);
    ~Torch();
    void paintEvent(QPaintEvent*event)override;
    void keyPressEvent(QKeyEvent*event)override;
    void begin();//初始化
    void becreat(Block&);//生成障碍
    void jump();
    void fall();
    void picturemove();
    bool ishit();
//private slots:

private:
    Ui::Torch *ui;
    void timerEvent(QTimerEvent*event)override;   
    int timer1;
    int timer2;
    bool isstart;//初始化
    bool isover;//是否结束

    Map background;
    double score;//显示分数.cpp234,初始化：75
    QString display;

    QRect person;
    int pump;//记录播放人物动作地顺序
    bool isjump;
    int pnum1;
    int pnum2;//跳跃检测
    int ten;
    int temn;
    int direction;//人的位置
    double gravitydown;//跳跃下落速度
    double gravityup;
    //人跳跃下落次数//跃起后停留空中事件

    double lives;//生命值
    QVector<QRect>blood;


    int num;//已生成障碍数量及对数量地操作
    QVector<Block>blocks;
    int starts;
    int starty;//随机数控制障碍位置与高度
    //障碍物
    int *pos;//指向碰撞的障碍编号，用于更新与角色碰撞的障碍

};

#endif // TORCH_H
